package com.ys.多线程.p10线程的停止;

import java.io.File;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 描述: P10监听者模式暂停线程
 *
 * @author CodeYang
 * @version 2021/1/5 17:49
 */
public class P10监听者模式暂停线程 {

    public static void main(String[] args) {

        // 创建子线程任务
        MyTask task = new MyTask(true);
        Thread t1= new Thread(task);
        t1.start();

        // 设置一个定时器,来监听子线程,规则如下:
        // 如果当前项目模块下出现了stop文件立即停止正在运行的线程,否则一直按1000ms间隔执行该子线程
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            // 匿名定时任务
            @Override
            public void run() {
                File file = new File("day_25/stop.txt");
                if (file.exists()){
                    System.out.println("检测到stop.txt文件存在,停止线程");
                    //存在停止线程 传入false
                    task.setFlag(false);
                    // 删除文件
                    file.delete();
                    // 去消定时任务 cancel
                    timer.cancel();
                }
            }
        }, 1000, 1000);
    }
}
